package com.friends.utils.xml;

import com.friends.utils.regex.RegexUtils;
import com.friends.utils.string.StringPool;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

/**
 * <pre>
 * XmlBase64Util
 * 替换xml中base64数据
 * </pre>
 *
 * @author cgy
 * @since 2025/5/13 10:45
 */
@Slf4j
@Component
public class XmlBase64Util {

//    private ObsUtil obsUtil;

    /**
     * <pre>
     * 将xml中的base64数据上传至obs，并且替换成obsUrl
     * 默认xml标签：&lt;pic_content>base64 content&lt;/pic_content>
     * </pre>
     *
     * @param str xml内容
     */
    public String compression(String str) {
        if (StringUtils.isBlank(str)) {
            return StringUtils.EMPTY;
        }

        // 把base64 的 PDF 转换成 obs Url
        if (str.contains("</pic_content>")) {
            str = compression(str, "pic_content");
        }

        return str.replaceAll(StringPool.NEW_LINE, StringPool.EMPTY)
                .replace(StringPool.RETURN, StringPool.EMPTY)
                .replace(StringPool.RETURN_NEW_LINE, StringPool.EMPTY);
    }

    /**
     * <pre>
     * 将xml中的base64数据上传至obs，并且替换成obsUrl
     * &lt;tag>base64 content&lt;/tag>
     * </pre>
     * @param str   xml内容
     * @param tag   标签名称
     * @return
     */
    public String compression(String str, String tag) {
        try {
            final String picContent = RegexUtils.xmlExtract(str, tag);
//            String replacement = obsUtil.uploadText(picContent, UUIDHexGenerator.generator() + ".txt", 30);
	        String replacement = "URL";
            return RegexUtils.xmlReplace(str, tag, replacement);
        } catch (Exception e) {
            log.error("上传base64到Obs异常 ", e);
            return RegexUtils.xmlReplace(str, tag, StringPool.EMPTY);
        }
    }

}
